|
Technical Q&AJava 12 -
|
import java.awt.Frame; import java.awt.FileDialog; import java.io.File; import java.io.IOException; public class ExecTest extends Frame { public static void main(String[ ] args) { new ExecTest(); System.exit(0); } public ExecTest() { String browserName; String url = "http://developer.apple.com/java/"; //ユーザが使用するブラウザを見つけられるように、FileDialog を設定する FileDialog fileDialog = new java.awt.FileDialog(this); fileDialog.setMode(FileDialog.LOAD); fileDialog.setTitle("Choose the browser to use:"); fileDialog.setVisible(true); //ダイアログからパス情報を取得し、それを確認する String resultPath = fileDialog.getDirectory(); String resultFile = fileDialog.getFile(); if(resultPath != null && resultPath.length()!= 0 && resultFile != null && resultFile.length() != 0) { File file = new File(resultPath + resultFile); if(file != null) { browserName = file.getPath(); try { //ブラウザを起動し、必要な URL を渡す Runtime.getRuntime().exec(newString[ ] {browserName, url}); } catch (IOException exc) { exc.printStackTrace(); } } } } } |
この例を実際に利用する場合は、ブラウザの情報をキャッシュして、そのブラウザを見つけられない場合にのみユーザにブラウザを尋ねるように修正するとよいでしょう。
より洗練された方法としては、ユーザにブラウザを選択するよう要求せずに、JConfig を使ってデフォルトのブラウザの情報を取得するというものがあります。
ユーザのデフォルトのブラウザで URL
を開くだけなら、JConfig
を使う方法の代替案として、Eric
Albert 氏の作成した BrowserLauncher
を使う方法もあります。BrowserLauncher
は Java のクラスで、プログラマが Java
のみでユーザのデフォルトの Web
ブラウザを開けるように設計されています。追加のライブラリや、JDK
1.1 以外の機能は不要です。BrowserLauncher
は商用か非商用かにかかわらず、自由に利用できます。